package com.xjrsoft.module.base.utils;


/**
 * @author by lisen
 * @Version 1.0.0
 * @Date 2024-05-31 16:15
 * @projectName: xjrsoft_new
 * @package: com.xjrsoft.module.base.utils
 * @className: ApiKey
 */
public class ApiKey {
    /**
     * 生成指定长度的随机密钥
     * @param length 长度
     * @return 密钥字符串
     */
    public static String uniqueId(int length) {
        // 字符源，可以根据需要删减
        String source = "!@#$%^&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        StringBuilder builder = new StringBuilder();
        builder.append("sk-");
        String str;
        for (int i = 0; i < length; i++) {
            // 循环随机获得当次字符，并移走选出的字符
            // 也可以直接使用charAt随机选取字符
            str = String.valueOf(source.charAt((int) Math.floor(Math.random() * source.length())));
            builder.append(str);
            source = source.replaceAll(str, "");
        }
        return builder.toString();
    }
}
